﻿using BTalk.Crypto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BTalk.Network
{
    public interface INetworkManager : IDisposable
    {
        void SetCipher(ICryptoStrategy algorithm, bool sendConfigurationData);

        void SendMessage(string message);

        void SendFile(string fileName, byte[] data);

        void Connect(string ipAddress, int port);

        ICryptoStrategy GetCipher();

        event Message MessageReceived;

        event FileMessage FileReceived;

        event AlgorithmRecognized AlgorithmNegotiated;
    }
}
